// TS中的接口,就是用来描述对象的
// 1. 定义的属性,必须要有
// 2. 数据类型必须一致
// 3. 属性后面加?. 表示这属性可选
// 4. 属性前面加readonly 表示这个属性只读,不能修改
// 5. [xxx:数据类型]:属性类型 这是任意属性,不限制属性名,不限制属性个数. 需要注意: 一个接口中任意属性的数据类型必须包含其他属性的数据类型
interface Iobj {
  name: string
  age: number
  gender?: boolean // 可选属性
  readonly id: number // 只读属性,不能修改
  [xxx: string]: string | number | boolean // 任意属性
}

// const obj: Iobj = { name: 'zs', age: 18 }
// 不写接口,也可以按照下面的方式去写
// const obj: { name: string; age: number } = { name: 'zs', age: 18 }

const obj: Iobj = {
  name: 'xxx',
  age: 18,
  id: 123,
  axegcs: false,
  werwerewr: '123123',
}
// obj.id = 345
console.log(obj.id)
